The present invention is related to digital communication systems and more particularly to systems and methods for operating communication systems where a single receiver processes information received from multiple sources.
A so-called point to multipoint communication system typically includes both a head end or central access point and multiple subscriber units. The central access point coordinates overall operation of the network. All communication is either to or from the central access point. Communication from the central access point to one or more subscriber units is referred to as downstream communication. Communication from a subscriber unit to the central access point is referred to as upstream communication.
So that multiple subscriber units can share a common transmission medium, there is typically multiplexing of upstream communication in either the time domain, frequency domain, or both. In the frequency domain, multiple subscriber units may transmit upstream simultaneously by employing different frequencies. Transmission capacity on any given frequency may be allocated to multiple subscriber units by assigning time frames to individual subscriber units for exclusive transmission. This scheme is known as time division multiple access (TDMA). In some systems employing direct sequence spread spectrum communication, there may also be multiplexing in the so-called code domain. This type of multiplexing is referred to as code division multiple access (CDMA).
It is desirable to improve the performance of point to multipoint communication systems by employing error correction coding. In general, error correction coding techniques achieve greater reliability in data transmission by adding redundancy to data to be transmitted. Some error correction codes are known as block codes. A block code transforms blocks of A data bits into blocks of B coded data bits. The B coded data bits depend on the A data bits and not on any preceding input to the block coder.
By contrast, other coding techniques introduce dependencies that are not confined within delineated blocks of coded data. For example, a convolutional coder passes data to be encoded through a linear finite-state shift register. The number of stages of the shift register is referred to as the constraint length. Data input to the convolutional coder may influence the coder's output for L shift register clock cycles where L is the constraint length. Trellis coding is another example of a coding technique that introduces dependence among successive symbols by use of memory. A useful general discussion of error control in communication systems may be found in Wicker, Error Control Systems for Digital Communication and Storage, (Prentice-Hall 1995), the contents of which are herein incorporated by reference.
A problem arises in that most decoding processes assume a continuous stream of data from a single source in order to decode correctly. Consider the situation where a particular subscriber unit in a system employing TDMA applies block coding to the upstream data to improve error performance. The boundaries of coded blocks do not necessarily coincide with TDMA frame boundaries. From the receiver point of view however two TDMA frames generated by a single subscriber unit will often be separated by intervening TDMA frames generated by other subscriber units. The receiver's block decoder will therefore not see a continuous stream of data from a particular subscriber unit, but will rather see a stream of coded data originating with various subscriber units. A single block decoder may therefore not be able correctly decode a block that has become divided among nonadjacent TDMA slots.
A similar problem arises in the context of the convolutional coding techniques. For example, a convolutional decoder at the central access point's receiver assumes that there is an interdependence among symbols that has been introduced by the convolutional or trellis code. In the TDMA system, however, that interdependence will be destroyed across the boundaries between TDMA frames that are generated by different subscriber units. One solution would be a complex memory scheme to buffer data separately for each subscriber unit at the receiver for each user but this would be impractical for large scale systems.
If frequency multiplexing is used but a single decoder processes coded data received via multiple frequencies, a similar problem will arise because the decoder's input will again be multiplexed in the time domain among multiple sources. Again, the existence of disparate sources for the decoder's input negates the assumptions upon which the decoding algorithm relies.
A further complication arises when the multiple sources insert varying degrees of redundancy when encoding the data. The level of redundancy is indicated by a parameter known as code rate, the ratio of coder input bits to coder output bits. To use a single decoder to decode a stream of data generated by multiple sources employing disparate code rates, the decoder must frequently change its code rate. For most commercially available decoders, this requires resetting the decoder at great expense in clock cycles.